<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        // 实现一维数组的深复制

        //   1 遍历数组  push到新数组中

        //   2 concat()  不写参数
        
        //   3 slice()   不写参数





        var arr1 = [1,2,3] ;

        var arr2 = arr1 ;  // 直接写两个数组相等 --- 就是浅复制  --- 共享地址

        // 深复制 --- 只复制值，不复制地址

        // 方法1
        var arr3 = [] ;  // 新建一个地址

        // 把arr1中的每一个值都push到arr3中
        for(var v of arr1) {
            arr3.push(arr1) ;
        }

        // 方法2：concat() 拼接一个空的
        // concat 拼接数组，然后会得到一个新的数组
        var arr4 = arr1.concat() ;
        console.log(arr4) ;

        // arr1.push(8) ;
        // console.log(arr1) ;
        // console.log(arr4) ;


        // 方法3：slice() 截取数组，不写参数
        // slice() 截取数组，返回一个新的数组
        // var arr5 = arr1.slice(0 , arr1.length);
        // slice()不写参数，就是截取整个数组
        var arr5 = arr1.slice();
        console.log(arr5) ;

        // arr1.push(8) ;
        // console.log(arr1) ;
        // console.log(arr5) ;





    </script>
    
</body>
</html>